// for gc purposes we have a from space and a to space
//
// the heap is the current space, an array of sdata objects
// to layout a cons we just put the car and then the cdr down
// to layout a vector we put down the length, then each of the elements

sdata heap_ref(u ref);
void heap_set(u ref, sdata x);
sdata cons(sdata x, sdata y);
sdata allocate_string(char* string);
sdata allocate_vector(u len);
sdata allocate_closure(u len, u label);
void closure_set(sdata cl, u i, sdata v);
